package DesignPatterns.Singleton;

/**
 * 单例模式-枚举单例
 * 不仅可以解决多线程问题,还可以防止序列化
 *
 * 枚举没有构造方法,拿到Class对象,也没办法反序列化
 *
 * @author yangjicong
 * @date 2022/7/9
 */
public enum  Singleton5 {
    //获取对象
    INSTANCE;


    /**
     * 线程安全,如下案例
     * @param args
     */
    public static void main(String[] args) {
        //不同对象的hashcode是不同的
        for (int i = 0; i < 100; i++) {

            new Thread(()-> System.out.println(Singleton5.INSTANCE.hashCode())).start();
        }
    }

}
